package fr.afcepf.ai91.qualimetrie.business;

import fr.afcepf.ai91.qualimetrie.entity.Adresse;
import fr.afcepf.ai91.qualimetrie.entity.Personne;

/**
 * Regles de gestion, definition des fonctionnalites pour associer Personne et Adresse.
 * @author Stagiaire
 *
 */
public interface IBusinessGestionPersonne {
    /**
     * Methode permettant d'ajouter une entite {@link Personne} dans la BDD 'qualimetrie'.
     * @param pers {@link Personne} a ajouter.
     * @return
     * <code>
     * <ul>
     * <li>si la personne possede une adresse non null :
     * <ol>
     * <li>Ajout de l'adresse </li>
     * <li>si ajout Adresse OK, ajout de la personne</li>
     * <li>si ajout de la Personne OK, association de la personne a l'adresse</li>
     * </ol>
     * </li>
     * <li>si une erreur, cf sinon...</li>
     * <li>sinon :
     * <ul>
     * <li>si l'ajout a fonctionne : l'objet personne avec sa cle primaire {@link Personne#getId} renseignee</li>
     * <li>sinon l'objet personne avec sa cle primaire {@link Personne#getId} null</li>
     * </ul>
     * </li>
     * </ul>
     * </code>
     */
    Personne ajouter(Personne pers);
    Personne associerAdresse(Personne pers);
    Adresse ajouter(Adresse adr);

}
